
const autoprefixer = require('autoprefixer');
//引入 postcss-pxtorem
const pxtorem = require('postcss-pxtorem');
const CompressionPlugin = require("compression-webpack-plugin")
// 代码压缩
// const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
var baseUrl= process.env.NODE_ENV === 'production'?'http://test.oa.officelinking.com/apply':'';//h5审批流
// var baseUrl= process.env.NODE_ENV === 'production'?'/h5':'';//访客预约
module.exports = {
// let originalConfig={
    // publicPath:"./",
    publicPath:baseUrl,
    lintOnSave: false,
    // 设为false打包时不生成.map文件
    productionSourceMap: false,
    // host: '192.168.2.17', // 原为: hotst: 'localhost'
    // entry: ["babel-polyfill", "./src/main.js"] ,
    // entry:{
    //     app:["babel-polyfill","./src/main.js"]
    // },
    devServer: {
        // overlay:{
        //   warning:false,
        //   errors:false
        // },
        // port: 8081,
        proxy: {
          
          '/app': {
            target: 'http://test.api.officelinking.com',//就是 api 的代理的实际路径
            ws: true,
            changeOrigin: true,//就是是变源,必须是…
            // pathRewrite: {
                //就是路径重定向,一看就知道复制代码
            //   '^/app': '/app',
            // //   '^/app': 'http://localhost:8081/index.php/app',
            // },
          },
        },
      },
    css: {
        // extract:false,
        requireModuleExtension:true,
        loaderOptions: {
            postcss: {
                plugins: [
                    autoprefixer({
                        overrideBrowserslist: ['Android >= 4.0', 'iOS >= 7']
                    }),
                    pxtorem({
                        rootValue: 37.5, //换算的基数
                        propList: ['*'],
                        unitPrecision: 3,
                        minPixelValue: 2
                    })
                ]
            }
        }
    },
    chainWebpack:config=>{
         // 移除 prefetch 插件
        config.plugins.delete('prefetch')
        config.module.rule('images').use('image-webpack-loader').loader('image-webpack-loader').options({bypassOnDebug:true}).end()
        // 压缩代码
        config.optimization.minimize(true);
        // 分割代码
        config.optimization.splitChunks({
            chunks: 'all'
        })
        // 生产环境相关配置
        // if (process.env.NODE_ENV === 'production') {
        //     // 代码压缩
        //     config.plugins.push(
        //         new UglifyJsPlugin({
        //             uglifyOptions: {
        //                 //生产环境自动删除console
        //                 compress: {
        //                     warnings: false, // 若打包错误，则注释这行
        //                     drop_debugger: true,
        //                     drop_console: true,
        //                     pure_funcs: ['console.log']
        //                 }
        //             },
        //             sourceMap: false,
        //             parallel: true
        //         })
        //     )
        // }
        // 用cdn方式引入
        // config.externals({
        // 'vue': 'Vue',
        // 'vuex': 'Vuex',
        // 'vue-router': 'VueRouter',
        // 'vant': 'vant',
        // 'axios': 'axios'
        // })
        
        // 解决ie11兼容ES6
        // config.entry('main').add('babel-polyfill')
        // // 开启图片压缩
        // config.module.rule('images')
        // .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
        // .use('image-webpack-loader')
        // .loader('image-webpack-loader')
        // .options({ bypassOnDebug: true })
        // 开启js、css压缩
        if (process.env.NODE_ENV === 'production') {
            config.plugin('compressionPlugin')
            .use(new CompressionPlugin({
                filename: info => {
                return `${info.path}.gz${info.query}`
                },
                algorithm: 'gzip', 
                test:/\.js$|\.html$|.\css/, // 匹配文件名
                threshold: 10240, // 对超过10k的数据压缩
                deleteOriginalAssets: false // 不删除源文件
            }))
        }
    },

}
// const vuxLoader = require('vux-loader')
// const webpackConfig = originalConfig // 原来的 module.exports 代码赋值给变量 webpackConfig

// module.exports = vuxLoader.merge(webpackConfig, {
//   plugins: ['vux-ui']
// })